package com.taxshare.purchaser.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.taxshare.mybatis.entity.BaseEntity;
import com.taxshare.purchaser.constant.TableConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author YANG
 * @ClassName: PoolEntity
 * @Description:
 * @date 2021-04-12
 */
@Data
@ApiModel(description = "发票池")
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(TableConstant.T_PURCHASER_INVOICE_POOL)
public class InvoicePoolEntity extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键")
    @TableId("uuid")
    private String uuid;

    @ApiModelProperty("发票代码")
    @TableField("invoice_code")
    private String invoiceCode;

    @ApiModelProperty("发票号码")
    @TableField("invoice_no")
    private String invoiceNo;

    @ApiModelProperty("发票类型01:专用发票 04：普票发票 10：电子发票 11：卷式发票")
    @TableField("invoice_type")
    private String invoiceType;

    @ApiModelProperty("购方税号")
    @TableField("invoice_date")
    private String invoiceDate;

    @ApiModelProperty("购方税号")
    @TableField("purchaser_tax_no")
    private String purchaserTaxNo;

    @ApiModelProperty("购房名称")
    @TableField("purchaser_name")
    private String purchaserName;

    @ApiModelProperty("购方地址电话")
    @TableField("purchaser_addr_phone")
    private String purchaserAddrPhone;

    @ApiModelProperty("购方银行账户")
    @TableField("purchaser_brank")
    private String purchaserBrank;

    @ApiModelProperty("销方名称")
    @TableField("seller_name")
    private String sellerName;

    @ApiModelProperty("销方税号")
    @TableField("seller_tax_no")
    private String sellerTaxNo;

    @ApiModelProperty("销方地址电话")
    @TableField("seller_addr_phone")
    private String sellerAddrPhone;

    @ApiModelProperty("销方银行账户")
    @TableField("seller_brank")
    private String sellerBrank;

    @ApiModelProperty("含税金额")
    @TableField("amount_with_tax")
    private String amountWithTax;

    @ApiModelProperty("税额")
    @TableField("tax_amount")
    private String taxAmount;

    @ApiModelProperty("金额(不含税)")
    @TableField("amount_with_out_tax")
    private String amountWithOutTax;

    @ApiModelProperty("校验码")
    @TableField("check_code")
    private String checkCode;

    @ApiModelProperty("备注")
    @TableField("remark")
    private String remark;

    @ApiModelProperty("查验状态")
    @TableField("check_status")
    private String checkStatus;

    @ApiModelProperty("查验结果")
    @TableField("check_result")
    private String checkResult;

    @ApiModelProperty("查验次数")
    @TableField("check_number")
    private Integer checkNumber;

    @ApiModelProperty("发票状态1 已作废 2 正常 3 红冲")
    @TableField("invoice_status")
    private String invoiceStatus;

    @ApiModelProperty("采集方式 1 图片上传 2 手工录入")
    @TableField("data_source")
    private String dataSource;

    @ApiModelProperty("主键")
    @TableField("image_id")
    private String imageId;

    @ApiModelProperty("签收状态 1 未签收 2 已签收")
    @TableField("sign_status")
    private String signStatus;

    @ApiModelProperty("审核规则名称")
    @TableField("rules_name")
    private String rulesName;

    @ApiModelProperty("审核规则状态 1 未审核 2 审核成功 3 审核失败")
    @TableField("rules_status")
    private String rulesStatus;

    @ApiModelProperty("报销状态 1 未报销 2 已报销")
    @TableField("reimbursement_status")
    private String reimbursementStatus;

    @ApiModelProperty("校验失败原因")
    @TableField("rules_result")
    private String rulesResult;

    @ApiModelProperty("责任人")
    @TableField("person_liable")
    private String personLiable;

    @ApiModelProperty("采集人")
    @TableField("collector")
    private String collector;

    @ApiModelProperty("记账科目")
    @TableField("booking_account")
    private String bookingAccount;

    @ApiModelProperty("被授权人")
    @TableField("licensee")
    private String licensee;

    @ApiModelProperty("责任人ID")
    @TableField("person_liable_id")
    private String personLiableId;

    @ApiModelProperty("采集人ID")
    @TableField("collector_id")
    private String collectorId;

    @ApiModelProperty("被授权人ID")
    @TableField("licensee_id")
    private String licenseeId;

    @ApiModelProperty("录入时间")
    @TableField("create_time_str")
    private String createTimeStr;

    @ApiModelProperty("收款员(卷票字段)")
    @TableField("cashier")
    private String cashier;

    @ApiModelProperty("复核人")
    @TableField("reviewer")
    private String reviewer;

    @ApiModelProperty("开票人")
    @TableField("drawer")
    private String drawer;

    @ApiModelProperty("密文")
    @TableField("cipher_text")
    private String cipherText;

    @ApiModelProperty("机器编号")
    @TableField("machine_code")
    private String machineCode;

    @ApiModelProperty("申请编号")
    @TableField("record_no")
    private String recordNo;

    @ApiModelProperty("提交标志（0 未提交 1 已提交）")
    @TableField("submit_status")
    private String submitStatus;

    @ApiModelProperty("是否可抵扣标记 0、不可抵扣 1、可抵扣")
    @TableField("invoice_flag")
    private String invoiceFlag;

    @ApiModelProperty("单据编号")
    @TableField("doc_no")
    private String docNo;

    @ApiModelProperty("单据状态 0-审批中 1-审批通过 2-退回")
    @TableField("doc_state")
    private String docState;

    @ApiModelProperty("发票对应科目名称")
    @TableField("account_item")
    private String accountItem;

    @ApiModelProperty("采集标志（0 OCR 1 手工录入）")
    @TableField("collect_mark")
    private String collectMark;

    @ApiModelProperty("提交时间")
    @TableField("submit_date")
    private String submitDate;
}